<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数</title>
</head>
<script>
    //ES6允许使用[箭头] (=>) 定义函数
    //1、声明一个函数
    let fn = (a,b)=>{return a + b}
    console.log('~~~和为:' + fn(1,2))
    //2、this是静态的.
    //this始终指向函数声明时所在的作用域下的this的值
    function getName() {
        console.log('普通函数：' + this.name)
    }
    let getName2 = () => {
        console.log('箭头函数：' + this.name)
    }
    window.name = '老朱'
    const PERSON = {
        name : '杨林'
    }
    //直接调用
    // getName()
    // getName2()
    //call方法调用
    getName.call(PERSON)
    getName2.call(PERSON)

    //3、不能做为构造函数去实例化对象
    //不能这样写,会报错
    // let dog = (a,b) => {
    //     this.a = a
    //     this.b = b
    // }
    //4、不能使用arguments

    //5、箭头函数简写
    //1)、省略小括号,当形参有且只有一个的时候
    let add = m => {return m + m}
    //2)、省略大括号,当代码体只有一条,return也省略,结果就是返回值
    let pow = h => h * h

</script>
</html>